import Vue from 'vue'

// 作用：重置默认的css样式 类似reset.css
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

// 导入elementui及对应样式
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// 导入elementui英文的语言包
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

// 引入axios
import request from '@/utils/request'

// 导入的是icons/index.js
import '@/icons' // icon
import '@/permission' // permission control

// import '@/directives'
// import * 全部导入的意思
import * as directives from '@/directives'
// console.log(directives)

// 导入插件
import components from '@/components'
// 使用插件，在使用Vue.use的时候，会自动调用插件的install方法
Vue.use(components)

// 方法1：全局注册自定义指令
// for (const key in directives) {
//   Vue.directive(key, directives[key])
// }

// 功能角度map filter forEach都可以
// 方法2：Object.keys把对象先转为数组再进行遍历
// Object.keys(directives)返回的是['imgerror','color']
Object.keys(directives).forEach(key => {
  // console.log(key)
  // console.log(directives[key])
  Vue.directive(key, directives[key])
})

// Vue.directive('imgerror', imgerror)
// Vue.directive('color', color)

import i18n from '@/lang'

// 配置ElementUI的中英切换逻辑
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
})

// 注册ElementUI，使用ElementUI里所有的组件
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)

// 线上有警告是否显示
Vue.config.productionTip = false

Vue.prototype.$request = request

// console.log(process.env)

new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})
